// 封装分类数据业务相关代码
import { getCategoryAPI } from '@/apis/category'
import { onMounted, ref } from 'vue'
import { useRoute } from 'vue-router';
import { onBeforeRouteUpdate } from 'vue-router'
export function useCategory() {
    // 获取分类数据
    const categoryData = ref({})
    const route = useRoute()
    //因为在切换分类的时候/category后面的参数要实时改变，需要接收参数所以给一个默认参数
    // id='route.params.id'意义：一开始上来（初始化）没传参数就默认传route.params.id，
    //（路由更新）切换新的分类的时候有参数了就传to.params.id
    const getCategoryList = async (id = route.params.id) => {
        const res = await getCategoryAPI(id)
        categoryData.value = res.result
    }
    onMounted(() => {
        console.log(11);
        getCategoryList()
        console.log(666);
    })

    // 目标：路由参数变化的时候可以把分类数据接口重新发送
    onBeforeRouteUpdate((to) => {
        console.log('路由参数');
        // 存在问题：最新的路由参数请求最新的分类数据
        getCategoryList(to.params.id)
    })
    return {
        categoryData
    }
}